/**
 * 模仿PHP的strtotime()函数
 * strtotime('2012-07-27 12:43:43') OR strtotime('2012-07-27')
 * @return 时间戳
 */
export function strtotime(str){
    var _arr = str.split(' ');
    var _day = _arr[0].split('-');
    _arr[1] = (_arr[1] == null) ? '0:0:0' :_arr[1];
    var _time = _arr[1].split(':');
    for (var i = _day.length - 1; i >= 0; i--) {
        _day[i] = isNaN(parseInt(_day[i])) ? 0 :parseInt(_day[i]);
    };
    for (var i = _time.length - 1; i >= 0; i--) {
        _time[i] = isNaN(parseInt(_time[i])) ? 0 :parseInt(_time[i]);
    };
    var _temp = new Date(_day[0],_day[1]-1,_day[2],_time[0],_time[1],_time[2]);
    return _temp.getTime() / 1000;
}

/**
 * 模仿PHP的time()函数
 * @return 返回当前时间戳
 */
export function time(){
    return parseInt((new Date()).getTime() / 1000);
}

/**
 * 模仿PHP的date()函数
 * strtotime('Y-m-d H:i:s');
 * @param format 只支持 'Y-m-d H:i:s','Y-m-d','H:i:s' 三种调用方式
 * @param time 为空时，取当前时间
 * @return 日期格式化的字符串
 */
export function date(format,time){
    var _temp = (time != null) ? new Date(time*1000) : new Date();
    var _return = '';

    if(/Y-m-d/.test(format)){
        var _day = [_temp.getFullYear(),addzero(1 + _temp.getMonth()),addzero(_temp.getDate())];
        _return = _day.join('-');
    }
    if(/H:i:s/.test(format)){
        var _time = [addzero(_temp.getHours()),addzero(_temp.getMinutes()),addzero(_temp.getSeconds())];
        _return += ' ' +_time.join(':');
    }
    return _return;
    function addzero(i){
        if(i<=9){
            return '0' + i;
        }else{
            return i;
        }
    }
}

/**
 * @param time 毫秒
 */
export function sleep (time) {
    return new Promise((resolve) => setTimeout(resolve, time));
}